package com.solution.pc.shoppingcart.entity;

import java.math.BigDecimal;
import java.util.List;

import com.solution.admin.product.entity.ProductSpecEntity;
import com.solution.admin.promotion.entity.PromotionProductEntity;
import com.solution.common.entity.BaseEntity;

/**
 * 购物车实体类
 * @author lilp
 * @date 2017-10-13 20:05:27
 */
public class ShoppingCartEntity extends BaseEntity {
	private static final long serialVersionUID = -3926291988306842687L;
	
	
	/**
	 * 当前用户 
	 */
	private String userCode;
	
	/**
	 * 货主 
	 */
 	private int productOwnerCode;
	
	/**
	 * 商品ID
	 */
 	private long productId;
	
	/**
	 * 商品编码
	 */
	private String productCode;
	
	/**
	 * 商品名称
	 */
	private String productName;
	
	/**
	 * 商品规格
	 */
	private String productSpec;
	
	/**
	 * 商品赠送积分系数
	 */
	private BigDecimal productPointRatio;
	
	/**
	 * 商品积分系统数
	 */
	private BigDecimal customerPointRatio;
	
	/**
	 * 商品最大使用积分系统数
	 */
	private BigDecimal exchangePointRatio;
	
	/**
	 * 商品模拟成本
	 */
	private BigDecimal productSimulatePrice;
	
	/**
	 * 活动信息（描述）
	 */
	private String promotionInfo;
	
	/**
	 * 活动结果(活动的实际结果)
	 */
	private String promotionResult;
	
	/**
	 * 活动类型名称 
	 */
	private String promotionTypeName;
	/**
	 * 活动描述
	 */
	private String promotionDesc;
	
	/**
	 * 商品规格列表（1个项目可能配置多个规格项）
	 */
	private List<ProductSpecEntity> specList;
	
	/**
	 * 商品基价
	 */
	private BigDecimal productBasePrice;
	
	/**
	 * 单价
	 */
	private BigDecimal productPrice;
	
	/**
	 * 商品图片
	 */
	private String imagePath;
	
	/**
	 * 购物数量
	 */
 	private int buyNum;
	
	/**
	 * 修改人
	 */
	private String modifier;
	
	/**
	 * 1 代表是从商品详情页面添加购物车，购物车商品数量+1
	 * 非1 代表直接修改的商品数量，或在购物车中添加或添加删除，传入商品的购物数量
	 */
	private String addFlag; 
	
	/**
	 * 直接购物标识 1 代表直接购买  非1 代表是添加购物车
	 */
	private String directBuy;
	
	/**
	 * 商品条目小计
	 */
	private BigDecimal subTotalProductPrice;
	
	/**
	 * 用于页面显示商品条目小计
	 */
	private BigDecimal showSubTotalProductPrice;
	
	
	/**
	 * 满赠赠品列表(以下三个列表用于前台购物车结算页面，显示每条购物车商品的参与活动结果)
	 */
	private List<PromotionProductEntity> giftList;
	
	/**
	 * 满减列表
	 */
	private List<PromotionProductEntity> reduceList;
	/**
	 * 满折列表
	 */
	private List<PromotionProductEntity> discountList;
	
	/**
	 * 当前用户 
	 */
	public String getUserCode() {
		return userCode;
	}
	public void setUserCode(String userCode) {
		this.userCode=userCode;
	}

	/**
	 * 货主 
	 */
 	public int getProductOwnerCode() {
		return productOwnerCode;
	}
	public void setProductOwnerCode(int productOwnerCode) {
		this.productOwnerCode=productOwnerCode;
	}

	/**
	 * 商品ID
	 */
 	public long getProductId() {
		return productId;
	}
	public void setProductId(long productId) {
		this.productId=productId;
	}

	/**
	 * 商品编码
	 */
	public String getProductCode() {
		return productCode;
	}
	public void setProductCode(String productCode) {
		this.productCode=productCode;
	}

	/**
	 * 商品名称
	 */
	public String getProductName() {
		return productName;
	}
	public void setProductName(String productName) {
		this.productName=productName;
	}

	/**
	 * 单价
	 */
	public BigDecimal getProductPrice() {
		return productPrice;
	}
	public void setProductPrice(BigDecimal productPrice) {
		this.productPrice=productPrice;
	}

	/**
	 * 购物数量
	 */
 	public int getBuyNum() {
		return buyNum;
	}
	public void setBuyNum(int buyNum) {
		this.buyNum=buyNum;
	}

	/**
	 * 修改人
	 */
	public String getModifier() {
		return modifier;
	}
	public void setModifier(String modifier) {
		this.modifier=modifier;
	}
	public String getAddFlag() {
		return addFlag;
	}
	public void setAddFlag(String addFlag) {
		this.addFlag = addFlag;
	}
	public String getImagePath() {
		return imagePath;
	}
	public void setImagePath(String imagePath) {
		this.imagePath = imagePath;
	}
	public BigDecimal getSubTotalProductPrice() {
		return subTotalProductPrice;
	}
	public void setSubTotalProductPrice(BigDecimal subTotalProductPrice) {
		this.subTotalProductPrice = subTotalProductPrice;
	}
	public String getProductSpec() {
		return productSpec;
	}
	public void setProductSpec(String productSpec) {
		this.productSpec = productSpec;
	}
	public List<ProductSpecEntity> getSpecList() {
		return specList;
	}
	public void setSpecList(List<ProductSpecEntity> specList) {
		this.specList = specList;
	}
	public List<PromotionProductEntity> getGiftList() {
		return giftList;
	}
	public void setGiftList(List<PromotionProductEntity> giftList) {
		this.giftList = giftList;
	}
	public List<PromotionProductEntity> getReduceList() {
		return reduceList;
	}
	public void setReduceList(List<PromotionProductEntity> reduceList) {
		this.reduceList = reduceList;
	}
	public void setProductId(Long productId) {
		this.productId = productId;
	}
	public List<PromotionProductEntity> getDiscountList() {
		return discountList;
	}
	public void setDiscountList(List<PromotionProductEntity> discountList) {
		this.discountList = discountList;
	}
	public String getPromotionInfo() {
		return promotionInfo;
	}
	public void setPromotionInfo(String promotionInfo) {
		this.promotionInfo = promotionInfo;
	}
	public String getPromotionDesc() {
		return promotionDesc;
	}
	public void setPromotionDesc(String promotionDesc) {
		this.promotionDesc = promotionDesc;
	}
	public String getPromotionTypeName() {
		return promotionTypeName;
	}
	public void setPromotionTypeName(String promotionTypeName) {
		this.promotionTypeName = promotionTypeName;
	}
	public BigDecimal getProductBasePrice() {
		return productBasePrice;
	}
	public void setProductBasePrice(BigDecimal productBasePrice) {
		this.productBasePrice = productBasePrice;
	}
	public BigDecimal getProductPointRatio() {
		return productPointRatio;
	}
	public void setProductPointRatio(BigDecimal productPointRatio) {
		this.productPointRatio = productPointRatio;
	}
	public BigDecimal getCustomerPointRatio() {
		return customerPointRatio;
	}
	public void setCustomerPointRatio(BigDecimal customerPointRatio) {
		this.customerPointRatio = customerPointRatio;
	}
	public BigDecimal getExchangePointRatio() {
		return exchangePointRatio;
	}
	public void setExchangePointRatio(BigDecimal exchangePointRatio) {
		this.exchangePointRatio = exchangePointRatio;
	}
	public BigDecimal getProductSimulatePrice() {
		return productSimulatePrice;
	}
	public void setProductSimulatePrice(BigDecimal productSimulatePrice) {
		this.productSimulatePrice = productSimulatePrice;
	}
	public String getPromotionResult() {
		return promotionResult;
	}
	public void setPromotionResult(String promotionResult) {
		this.promotionResult = promotionResult;
	}
	public String getDirectBuy() {
		return directBuy;
	}
	public void setDirectBuy(String directBuy) {
		this.directBuy = directBuy;
	}
	public BigDecimal getShowSubTotalProductPrice() {
		return showSubTotalProductPrice;
	}
	public void setShowSubTotalProductPrice(BigDecimal showSubTotalProductPrice) {
		this.showSubTotalProductPrice = showSubTotalProductPrice;
	}
	
}
